package cn.cl;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.ListPosition;

/**
 * 标题：
 * 作者：何处是归程
 * 时间：2020/4/10 - 8:52
 */
public class TestList {
	public static void main(String[] args) {
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println("清空数据：" + jedis.flushDB());
		System.out.println("向列表mylist的头部插入值 one：" + jedis.lpush("mylist", "one"));
		System.out.println("向列表mylist的头部插入值 tow：" + jedis.lpush("mylist", "tow"));
		System.out.println("向列表mylist的头部插入值 three：" + jedis.lpush("mylist", "three"));
		System.out.println("向列表mylist的尾部插入值 apple：" + jedis.rpush("mylist", "apple"));
		System.out.println("向列表mylist的尾部插入值 banana：" + jedis.rpush("mylist", "banana"));
		System.out.println("向列表mylist的尾部插入值 orange：" + jedis.rpush("mylist", "orange"));
		System.out.println("判断列表mylist是否存在：" + jedis.exists("mylist"));
		System.out.println("获取列表mylist中所有的值：" + jedis.lrange("mylist", 0, -1));
		System.out.println("移除列表mylist的头部的值：" + jedis.lpop("mylist"));
		System.out.println("移除列表mylist的尾部的值：" + jedis.rpop("mylist"));
		System.out.println("获取列表mylist中所有的值：" + jedis.lrange("mylist", 0, -1));
		System.out.println("获取列表mylist中下标为3的value：" + jedis.lindex("mylist", 3));
		System.out.println("获取列表mylist的长度：" + jedis.llen("mylist"));
		System.out.println("移除mylist列表中的指定个数的值：" + jedis.lrem("mylist", 1, "two"));
		System.out.println("通过下标截取指定长度的元素，其余元素被删除：" + jedis.ltrim("mylist", 0, 3));
		System.out.println("获取列表mylist中所有的值：" + jedis.lrange("mylist", 0, -1));
		System.out.println("将列表mylist的尾元素删除并添加到mylist2的列表头：" + jedis.rpoplpush("mylist", "mylist2"));
		System.out.println("获取列表mylist中所有的值：" + jedis.lrange("mylist", 0, -1));
		System.out.println("获取列表mylist2中所有的值：" + jedis.lrange("mylist2", 0, -1));
		System.out.println("将指定列表中指定位置的值替换成另一个值，如果列表不存在，就会报错：" + jedis.lset("mylist", 0, "test"));
		System.out.println("获取列表mylist中所有的值：" + jedis.lrange("mylist", 0, -1));
		System.out.println("往指定列表里指定值的前面（before）/后面（after）插入值：" + jedis.linsert("mylist", ListPosition.BEFORE, "one", "1314520"));
		System.out.println("获取列表mylist中所有的值：" + jedis.lrange("mylist", 0, -1));
		System.out.println("清空数据：" + jedis.flushDB());
	}
}
